package com.zxy.ziems.server.device.modules;

/**
 * 通信信道关联设备处理器
 * @author chdzq
 * @create 2023/4/10
 */
public interface DeviceChannelProcessor<T, R> {

    /**
     * 支持的协议类型 返回非空 为null 忽略 重复 忽略
     * @return deviceType
     */
    String supportProtocol();

    /**
     * 增加
     * @param config
     * @param protocol 协议
     * @param deviceId 设备id
     * @param channelId 通道Id
     */
    void doBeforeEncodeAdvancedConfigActionTrigger(T config, String protocol, String channelId, String deviceId);


    /**
     * 获取额外信息
     * @param config 配置
     * @param protocol 协议
     * @param deviceId 设备id
     * @param channelId 通道Id
     */
    R doDecodeAdvancedConfig(T config, String protocol, String channelId, String deviceId);
}
